package com.market.mapper;

import com.market.entity.Provider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ProviderMapper{
    // 查询所有供应商
    List<Provider> findAll();
    
    // 根据ID查询供应商
    Provider findById(Long id);
    
    // 根据名称查询供应商
    List<Provider> findByName(@Param("proName") String proName);
    
    // 分页查询供应商
    List<Provider> findByPage(
        @Param("proName") String proName, 
        @Param("proCode") String proCode,
        @Param("offset") Integer offset, 
        @Param("pageSize") Integer pageSize);
    
    // 根据条件统计供应商总数
    int countByCondition(
        @Param("proName") String proName, 
        @Param("proCode") String proCode);
    
    // 添加供应商
    int add(Provider provider);
    
    // 修改供应商
    int update(Provider provider);
    
    // 删除供应商
    int deleteById(Long id);
    
    // 检查供应商编码是否已存在
    Provider findByProCode(@Param("proCode") String proCode);
    
    // 检查供应商编码是否存在（排除指定ID）
    Provider findByProCodeExcludeId(@Param("proCode") String proCode, @Param("id") Long id);
}
